home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / misc / gfront11.lha / GUIFront / Demos / Source / FramePrefs.c < prev    next >
C/C++ Source or Header  |  1994-11-01  |  5KB  |  165 lines

  1.  
  2. /* FramePrefs.c - The GUI of the 'FramePrefs' section of the GUIFront
  3.  *                preferences editor.
  4.  *
  5.  * This is a GUIFront example GUI. To build an example, compile and link this
  6.  * file with Generic.o (also supplied).
  7.  * Everything prefixed with DEMO_ is exported to Generic.o.
  8.  */
  9.  
  10. #include <libraries/guifront.h>
  11.  
  12. /* First, some Gadget ID's */
  13.  
  14. enum
  15. {
  16.     GID_SCREENFONT,
  17.     GID_FONT,
  18.     GID_GETFONT,
  19.     GID_COLOR,
  20.     GID_ALIGNMENT,
  21.     GID_BOLD,
  22.     GID_ITALICS,
  23.     GID_3D,
  24.     GID_LEADING,
  25. };
  26.  
  27. /* Some data and tag items we'll be needing later */
  28.  
  29. static const struct TagItem txtags[] =
  30. {
  31.     {GTTX_Border, TRUE},
  32.     {TAG_DONE},
  33. };
  34.  
  35. static const struct TagItem getalttags[] =
  36. {
  37.     {ALT_Image, ALTI_GetFont},
  38.     {ALT_AslRequester, TRUE},
  39.     {TAG_DONE},
  40. };
  41.  
  42. static const STRPTR alignmentlabels[] =
  43. {
  44.     "_Above",
  45.     "_Centered",
  46.     NULL,
  47. };
  48.  
  49. static const struct TagItem alignmenttags[] =
  50. {
  51.     {GTMX_Labels, alignmentlabels},
  52.     {TAG_DONE},
  53. };
  54.  
  55. static const STRPTR leadinglabels[] =
  56. {
  57.     "_Left",
  58.     "_Center",
  59.     "_Right",
  60.     NULL,
  61. };
  62.  
  63. static const struct TagItem leadingtags[] =
  64. {
  65.     {GTMX_Labels, leadinglabels},
  66.     {TAG_DONE},
  67. };
  68.  
  69.  
  70. /* Now, the GadgetSpec's we'll be needing for this GUI */
  71.  
  72. static GadgetSpec gadgetspecs[] =
  73. {
  74.     {CHECKBOX_KIND,  0,0,{0,0,0,0, "_Screen Font",NULL,GID_SCREENFONT,PLACETEXT_LEFT}, NULL, GS_DefaultTags},
  75.     {TEXT_KIND,        20,0,{0,0,0,0, "Font",        NULL,GID_FONT, PLACETEXT_LEFT}, txtags, GS_DefaultTags},
  76.     {GETALT_KIND,     0,0,{0,0,0,0, NULL,          NULL,GID_GETFONT,PLACETEXT_IN}, getalttags, GS_DefaultTags},
  77.     {PALETTE_KIND,    20,0,{0,0,0,0, "C_olor",      NULL,GID_COLOR,PLACETEXT_LEFT}, NULL, GS_DefaultTags},
  78.     {MX_KIND,         0,0,{0,0,0,0, NULL,          NULL,GID_ALIGNMENT, PLACETEXT_RIGHT}, alignmenttags, GS_DefaultTags},
  79.     {CHECKBOX_KIND,     0,0,{0,0,0,0, "_Bold",       NULL,GID_BOLD,PLACETEXT_RIGHT}, NULL, GS_DefaultTags},
  80.     {CHECKBOX_KIND,     0,0,{0,0,0,0, "_Italics",    NULL,GID_ITALICS,PLACETEXT_RIGHT}, NULL, GS_DefaultTags},
  81.     {CHECKBOX_KIND,     0,0,{0,0,0,0, "_3D",         NULL,GID_3D,PLACETEXT_RIGHT}, NULL, GS_DefaultTags},
  82.     {MX_KIND,         0,0,{0,0,0,0, NULL,          NULL,GID_LEADING, PLACETEXT_RIGHT}, leadingtags, GS_DefaultTags},
  83. };
  84.  
  85. /* Now, we group all of these GadgetSpecs into an array of pointers, so the
  86.  * layout engine can locate gadgets merely by their Gadget IDs.
  87.  */
  88.  
  89. GadgetSpec *DEMO_GadgetSpecList[] =
  90. {
  91.     &gadgetspecs[0], &gadgetspecs[1], &gadgetspecs[2], &gadgetspecs[2],
  92.     &gadgetspecs[3], &gadgetspecs[4], &gadgetspecs[5], &gadgetspecs[6],
  93.     &gadgetspecs[7], &gadgetspecs[8],
  94.     NULL,
  95. };
  96.  
  97. /* Finally, the layout tag list itself. This is where most of the work is
  98.  * done. This list completely describes how the above gadgets are arranged
  99.  * in groups in the GUI.
  100.  */
  101.  
  102. ULONG DEMO_LayoutList[] =
  103. {
  104.     GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth,
  105.  
  106.     GUIL_VertGroup, 1,
  107.         GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth | GUILF_LabelAlign,
  108.  
  109.         GUIL_GadgetSpecID, GID_SCREENFONT,
  110.  
  111.         GUIL_HorizGroup, 0,
  112.             GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
  113.             GUIL_GadgetSpecID, GID_FONT,
  114.             GUIL_GadgetSpecID, GID_GETFONT,
  115.         TAG_DONE,
  116.  
  117.         GUIL_GadgetSpecID, GID_COLOR,
  118.     TAG_DONE,
  119.  
  120.     GUIL_HorizGroup, 1,
  121.         GUIL_Flags, GUILF_EqualShare | GUILF_EqualHeight,
  122.         GUIL_VertGroup, 1,
  123.             GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
  124.             GUIL_FrameType, GUILFT_Ridge,
  125.             GUIL_FrameHeadline, "Alignment",
  126.             GUIL_GadgetSpecID, GID_ALIGNMENT,
  127.         TAG_DONE,
  128.         GUIL_VertGroup, 1,
  129.             GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
  130.             GUIL_FrameType, GUILFT_Ridge,
  131.             GUIL_FrameHeadline, "Attributes",
  132.             GUIL_GadgetSpecID, GID_BOLD,
  133.             GUIL_GadgetSpecID, GID_ITALICS,
  134.             GUIL_GadgetSpecID, GID_3D,
  135.         TAG_DONE,
  136.         GUIL_VertGroup, 1,
  137.             GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
  138.             GUIL_FrameType, GUILFT_Ridge,
  139.             GUIL_FrameHeadline, "Leading",
  140.             GUIL_GadgetSpecID, GID_LEADING,
  141.         TAG_DONE,
  142.  
  143.     TAG_DONE,
  144.  
  145.     TAG_DONE,
  146. };
  147.  
  148. /* Obligatory version tag */
  149.  
  150. static const char ver[] = "$VER: FramePrefs 1.0 " __AMIGADATE__;
  151.  
  152. /* Now, some globals used by Generic.o during the call to GF_CreateGUIA() */
  153.  
  154. int DEMO_InitialOrientation = GUIL_VertGroup;
  155.  
  156. STRPTR DEMO_WindowTitle = "Frame Preferences GUI";
  157. STRPTR DEMO_AppID       = "FramePrefs";
  158.  
  159. STRPTR DEMO_Version     = "1.0",
  160.        DEMO_LongDesc    = "Demo program - Frame Preferences",
  161.        DEMO_Author      = "Michael Berg",
  162.        DEMO_Date        = __AMIGADATE__;
  163.  
  164. BOOL   DEMO_Backfill    = FALSE;
  165.